﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace SmartProject
{
    /// <summary>
    /// A Business rule manages and ensures that the requirements for the entity that
    /// implements the business rule.
    /// </summary>
    public abstract class BusinessRule
    {
        //private string _evaluationMessage;

        /// <summary>
        /// Return this constant if this BusinessRule is not queryable.
        /// </summary>
        protected const bool NotQueryable = false;

        public abstract string Name { get; }

        public abstract string Description { get; }
        /*
        public abstract bool Evaluate(Entity data);
        */
        public abstract void Implement(Entity data);

        public abstract bool QueryBooleanProperty(string propertyName);
        /*
        /// <summary>
        /// Gets or sets the message to display if a business rule is violated.
        /// </summary>
        public string EvaluationMessage
        {
            get { return _evaluationMessage; }
            set { _evaluationMessage = value; }
        }
        */
    }
}
